import { request } from '@/utils/request'
import type {
  SystemUsersPageParam,
  SystemUsersResponse,
  SystemUsersRequest,
} from '@/types/systemUser'
import type { PageData, BaseResponse } from '@/types/response'

export const systemUserService = {
  /**
   * 分页查询系统用户
   * @param params 分页查询参数
   */
  getSystemUsersPage: (params: SystemUsersPageParam) =>
    request.post<PageData<SystemUsersResponse>>('/systemusers/list/page', {
      body: params,
    }),

  /** 创建系统用户 */
  createSystemUsers(data: SystemUsersRequest): Promise<BaseResponse<SystemUsersResponse>> {
    return request.post('/systemusers', {
      body: data,
    })
  },

  /**
   * 根据ID查询系统用户
   * @param systemUserId 系统用户ID
   */
  getSystemUsersById(systemUserId: string): Promise<SystemUsersResponse> {
    return request.get(`/systemusers/${systemUserId}`)
  },

  /**
   * 修改系统用户
   * @param data 用户信息
   */
  modifySystemUsers(data: SystemUsersRequest): Promise<SystemUsersResponse> {
    return request.put('/systemusers', {
      body: data,
    })
  },

  /**
   * 删除系统用户
   * @param systemUserId 系统用户ID
   */
  deleteSystemUsers(systemUserId: string) {
    return request.delete<SystemUsersResponse>(`/systemusers/${systemUserId}`)
  },

  /**
   * 重置密码
   * @param params 重置密码参数
   */
  resetPassword(params: { systemUserId: string; newPassword: string }) {
    return request.put('/systemusers/reset/password', {
      body: params,
    })
  },

  /**
   * 更新密码
   * @param params 更新密码参数
   */
  updatePassword(params: { systemUserId: string; password: string; newPassword: string }) {
    return request.put('/systemusers/password', {
      body: params,
    })
  },

  /**
   * 修改状态
   * @param params 修改状态参数
   */
  modifyStatus(params: { systemUserId: string; status: number }) {
    return request.put('/systemusers/status', {
      body: params,
    })
  },
}
